﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using corel = Corel.Interop.VGCore;
using System.Diagnostics;


// 命名空间
namespace CorelDRAW按钮
{
    // 用户控件
    public partial class ControlUI : UserControl
    {
        // 核心应用程序
        private corel.Application corelApp;
        // 样式控制器
        private Styles.StylesController stylesController;
        // 构造函数
        public ControlUI(object app)
        
        {
            // 初始化组件
            InitializeComponent();
            try
            {
                // 获取核心应用程序
                this.corelApp = app as corel.Application;
                // 初始化样式控制器
                stylesController = new Styles.StylesController(this.Resources, this.corelApp);
            }
            catch
            {
                global::System.Windows.MessageBox.Show("VGCore Erro");
            }

            // 按钮点击事件
            btn_Command.Click += (s, e) => 
            { 
                var result = corelApp.MsgShow("你好呀！这是一个 CorelDRAW 按钮!\n点击 ok ，打开订单管理项目！");
                
                // 处理用户点击确认后的操作
                if (result == MessageBox.DialogResult.Ok)
                {
                    // 跳转到指定的URL
                    try
                    {
                        // 在这里修改为您想要跳转的URL
                        string targetUrl = "https://www.kdocs.cn/l/ce5zJUFftjuH?R=L1MvMTE=";
                        Process.Start(new ProcessStartInfo
                        {
                            FileName = targetUrl,
                            UseShellExecute = true
                        });
                    }
                    catch (Exception ex)
                    {
                        corelApp.MsgShow($"跳转失败：{ex.Message}", "错误");
                    }
                }
            };
            // 打印点击之后，用户点击弹窗
        }

        // 示例方法：展示不同的用户确认后操作
        private void ShowDifferentConfirmationExamples()
        {
            // 示例1：确认删除操作
            var deleteResult = corelApp.MsgShow("确定要删除选中的对象吗？", "确认删除", MessageBox.DialogButtons.YesNo);
            if (deleteResult == MessageBox.DialogResult.Yes)
            {
                try
                {
                    // 执行删除操作
                    if (corelApp.ActiveDocument != null && corelApp.ActiveDocument.SelectionRange.Count > 0)
                    {
                        corelApp.ActiveDocument.SelectionRange.Delete();
                        corelApp.MsgShow("对象已成功删除！", "删除完成");
                    }
                    else
                    {
                        corelApp.MsgShow("没有选中任何对象！", "提示");
                    }
                }
                catch (Exception ex)
                {
                    corelApp.MsgShow($"删除失败：{ex.Message}", "错误");
                }
            }

            // 示例2：确认保存操作
            var saveResult = corelApp.MsgShow("是否保存当前文档？", "保存确认", MessageBox.DialogButtons.YesNoCancel);
            switch (saveResult)
            {
                case MessageBox.DialogResult.Yes:
                    try
                    {
                        if (corelApp.ActiveDocument != null)
                        {
                            corelApp.ActiveDocument.Save();
                            corelApp.MsgShow("文档已保存！", "保存成功");
                        }
                    }
                    catch (Exception ex)
                    {
                        corelApp.MsgShow($"保存失败：{ex.Message}", "错误");
                    }
                    break;
                case MessageBox.DialogResult.No:
                    corelApp.MsgShow("文档未保存", "提示");
                    break;
                case MessageBox.DialogResult.CancelClose:
                    corelApp.MsgShow("操作已取消", "取消");
                    break;
            }

            // 示例3：重试操作
            var retryResult = corelApp.MsgShow("操作失败，是否重试？", "重试确认", MessageBox.DialogButtons.TryAgainCancel);
            if (retryResult == MessageBox.DialogResult.TryAgain)
            {
                // 执行重试逻辑
                corelApp.MsgShow("正在重试操作...", "重试中");
                // 这里可以添加重试的具体逻辑
            }
        }

        // 用户控件加载事件
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            // 加载主题
            stylesController.LoadThemeFromPreference();
        }

    }
}
